package com.sfh.appversion.server;


import com.sfh.appversion.base.page.PageResponse;
import com.sfh.appversion.dao.entity.AppVersionAssignDO;
import com.sfh.appversion.dao.entity.AppVersionDO;
import com.sfh.appversion.dto.req.*;
import com.sfh.appversion.dto.resp.AppVersionCheckRespDTO;


/***
 * 应用版本服务
 */
public interface AppVersionServer {

    /***
     * 应用版本分页
     * @return
     */
    PageResponse<AppVersionDO> queryPage(AppVersionPageReqDTO req);

    /***
     * 查询版本指定更新人员
     * @param req
     * @return
     */
    PageResponse<AppVersionAssignDO> queryAssignPersonPage(AppVersionAssignReqDTO req);

    /***
     * 检查最新版本
     * @param req
     */
    AppVersionCheckRespDTO checkNewVersion(AppVersionCheckReqDTO req);

    /***
     * 新增应用版本
     * @param vo
     * @return
     */
    boolean add(AppVersionNewReqDTO vo);

    /***
     * 删除应用版本
     * @return
     */
    boolean del(String versionId);

    /***
     * 删除应用全部版本
     * @return
     */
    boolean delAll(String appId);

    /***
     * 更新强制更新状态
     * @param versionForce 1 强制，0非强制
     * @return
     */
    boolean editForce(String versionId, String versionForce);

    /***
     * 更新发布状态
     * @param versionStatue 1；正常，0停止
     * @return
     */
    boolean editStatue(String versionId,String versionStatue);

    /***
     * 编辑发布模式
     * @return
     */
    boolean editReleaseType(AppVersionEditReqDTO req);

    /***
     * 新增版本指定更新人员
     * @param req
     * @return
     */
    boolean addAssignPerson(AppVersionAssignNewReqDTO req);

    /***
     * 删除版本指定更新人员
     * @return
     */
    boolean delAssignPerson(String assignId);

    /***
     * 编辑版本指定更新人员更新状态
     * @return
     */
    boolean editAssignPersonStatue(String assignId,String assignStatue);

}
